Standardowa funkcjonalność programu LibreOffice Calc nie obejmuje funkcji tłumaczenia tekstu na inne języki. Jednak każdy użytkownik może samodzielnie stworzyć taką funkcję.
W tym artykule przyjrzymy się niestandardowej funkcji GoogleTranslate_YouLibreCalc(), która umożliwia tłumaczenie tekstu bezpośrednio w komórce dowolnego arkusza.
Funkcja wykorzystuje witrynę do tłumaczenia tekstu "Tłumacz Google" i można ich używać w dowolnych formułach zarówno niezależnie, jak i razem z innymi standardowymi funkcjami.
Dodać funkcja Tłumacz Google , otwórz menu Tools - Macros - Edit Macros... , wybierać Moduł1 i skopiuj następujący tekst do modułu:
Option VBASupport 1 Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String) ' moonexcel.com.ua Dim FCalc As Object Dim WebsiteURL As String Dim XMLHTTP As Object Dim oHTML As Object Dim HTMLDoc As HTMLDocument Dim ObjClass As Object FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess") TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate)) SrcLang = LCase(SrcLang) TrgLang = LCase(TrgLang) IF SrcLang = "zh-cn" Then SrcLang = "zh-CN" IF SrcLang = "zh-tw" Then SrcLang = "zh-TW" IF TrgLang = "zh-cn" Then TrgLang = "zh-CN" IF TrgLang = "zh-tw" Then TrgLang = "zh-TW" WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate ' Wykonujemy wywołanie API do serwera WWW za pomocą żądania AJAX Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") XMLHTTP.Open "GET", WebsiteURL, False XMLHTTP.Send ' Tworzymy dokument HTML, korzystając z tekstu odpowiedzi na żądanie AJAX Set oHTML = CreateObject("HTMLFile") With oHTML .Open .Write XMLHTTP.responseText .Close End With ' Konwertujemy tekst HTML na model obiektowy korzystając z biblioteki elementów sieciowych Microsoft HTML Object Library Set HTMLDoc = oHTML Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0) If Not ObjClass Is Nothing Then GoogleTranslate_YouLibreCalc = ObjClass.innerText End If ' Uwalniamy pamięć Set ObjClass = Nothing Set oHTML = Nothing Set XMLHTTP = Nothing End Function
Dalej, zamknij Macro Edytor i wróć do arkusza LibreOffice Calc , wybierz dowolną komórkę i skorzystaj z naszej nowej funkcji GoogleTranslate_YouLibreCalc() .
Możesz także użyć funkcji GOOGLETRANSLATE(), instalując bezpłatne rozszerzenie YouLibreCalc.oxt lub jego w pełni funkcjonalna wersja YLC_Utilities.oxt .
Od tego momentu ta funkcja będzie dostępna we wszystkich plikach, które zostaną otwarte w LibreOffice Calc.